PHP 官方被黑与“网络军火商”Zerodium 有关?CEO 辟谣:这个漏洞就是垃圾
作为在服务器端执行的脚本语言,PHP 尤为适用于 Web 开发并可嵌入 HTML 中,因此许多个人和企业网站的开发都习惯了 PHP 的便捷。
可近日,PHP 官方 Git 仓库却被黑客攻击,致代码库遭篡改,恶意代码植入了一个远程代码执行的后门,即黑客可远程接管任何使用 PHP 的网站!
两个冒名的恶意提交
上周日,PHP 的开发者兼维护者 Nikita Popov 表示,在 git.php.net 服务器上维护的 php-src 存储库中发现两个恶意提交,而且这两个提交还都伪造了他的签名和 PHP 创建者 Rasmus Lerdorf 的签名。
表面看来,这两个提交都只是“Fix typo”,即修复打字排版错误,加之又是以 Nikita Popov 和 Rasmus Lerdorf 的名义提交,因此开发者很容易将其混淆为已知的 PHP 维护者所为。
不过,一旦将目光移至第 370 行,问题就浮出了水面:这行调用了 zend_eval_string 函数的代码,实际上是植入了一个远程代码执行(RCE)的后门,但凡运行该版本 PHP 的网站都会可能受到攻击。
PHP 开发者 Jake Birchall 对此解读为:“如果该字符串以'zerodium'开头,那么这行代码将从 useragent HTTP 头内执行 PHP 代码。”
据 Web Technology Surveys 的调查显示,全球近 80% 的网站均由 PHP 支持,倘若这个远程代码执行(RCE)的后门就此被植入并未被发现,后果不堪设想。
所幸,Nikita Popov 表示这两个恶意提交很快便被发现并已还原:“第一个提交是在提交后几个小时发现的,这是常规提交后代码审查的一部分。这些更改显然是恶意的,所以立即被还原了。”
此外,Popov 补充道,这些恶意提交是在 PHP 8.1 的开发分支上进行的,而该分支将于今年年底发布,所以目前并没有造成严重后果。
PHP 源码库由 Git 迁移至 GitHub
由于恶意提交是以 Nikita Popov 和 Rasmus Lerdorf 的合法维护者名义所上传,因此目前为止,尚不清楚肇事者是谁,以及他们是如何发布恶意提交的。不过这种事情的发生也不是太令人惊讶,因为像 Git 这样的源码版本控制系统,其实很容易实现将伪造的提交上传至远程 Git 服务器。
PHP 维护者 Nikita Popov 也指出,虽然开发团队不确定确切的攻击方式,但是有迹象表明这次恶意活动是由受感染的 git.php.net 服务器引起的,而非个人 Git 帐户。
因此,为了预防此类事件的再次发生,PHP 维护者已决定将官方 PHP 源码库迁移到 GitHub。
Nikita Popov 在声明中表示,尽管调查仍在进行中,但他们将停止 git.php.net 服务器。而曾经仅仅是作为镜像的 GitHub 存储库今后将变得规范。也就是说,未来 PHP 所有的代码更改都要直接推送至 GitHub 而不是 git.php.net 服务器。
此外,之前对 PHP 项目存储库有写访问权的开发者现在也需要加入 GitHub 上的 PHP 组织。
Zerodium:与我与关
作为至今仍是服务器端主要的编程语言,PHP 的 Git 服务器被黑这件事引起了强烈的关注及讨论,今日在 Techmeme 和 HN 上均登上首页或 TOP 榜。
其中,由于恶意代码中提到了“zerodium”一词,因此许多开发者猜测此事或许与 Zerodium 公司有关。
PS:Zerodium 号称网络军火商,一家主营软件漏洞采购、专门倒卖 0day 漏洞,并将之向政府和执法机构转售的企业。
对此,Zerodium 的 CEO Chaouki Bekrar 在推特否认了相关谣言:“向今天在 PHP git 中输入‘Zerodium’的巨魔欢呼。很明显,这事跟我们无关。很可能,发现这个漏洞的研究人员试图把它卖给许多实体,但没有人想买这个垃圾,所以他们把它烧了。”
对于这起事件,也有许多网友进行了热议。
评论1:
提交[1]中的'zend_eval_string'的第三个参数是执行代码的"filename",它可能用于堆栈跟踪。这是一个非常奇怪的现象,在日志中看到这一点可能会立即敲响警钟。
因此总的来说,在我看来,这个提交的结构很奇怪——不是以一种“好的”隐蔽的方式,而是以一种“为什么它不试着更好地隐藏”的方式。
评论2:
在学习了几个月的 Django 之后,昨天我决定回到 PHP/wordpress, PHP7 和 PHP8 看起来很稳定,PHP 仍然是最适合 Web 的语言。在我看来,PHP8 添加了 JIT,它可以将自己扩展到 Web 应用程序之外。希望迁移到 GitHub 可以让团队在 PHP 开发上有更多的自由。
对这件事,你有什么看法吗?欢迎评论区留言!
参考链接:
https://github.com/php/php-src/commit/2b0f239b211c7544ebc7a4cd2c977a5b7a11ed8a?branch=2b0f239b211c7544ebc7a4cd2c977a5b7a11ed8a&diff=unified#diff-a35f2ee9e1d2d3983a3270ee10ec70bf86349c53febdeabdf104f88cb2167961R368-R370
https://news-web.php.net/php.internals/113838
https://www.bleepingcomputer.com/news/security/phps-git-server-hacked-to-add-backdoors-to-php-source-code/
C站(CSDN)软件工程师能力认证
开源发布暨IT技术人才培养合作研讨会
于今晚19:30—21:00
扫码锁定直播间,期待您的参与!